package com.zhuchaooasystem.utils;

import android.os.Environment;

import java.io.File;

/**
 * @author yinsi
 *         <p/>
 *         文件相关工具类
 */
public class FileUtils {

    public static final String DATA_DIRECTORY = "/sdcard/";


    // 判断sd卡是否存在并具有读写权限
    public static boolean sdCardExists() {
        return Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
    }

    /**
     * 创建文件夹
     *
     * @param path
     */
    public static void createFloderImages(String path) {
        try {
            if (sdCardExists()) {
                File file = new File(path);
                if (!file.exists()) {
                    file.mkdirs();
                } else {
                    if (!file.isDirectory()) {
                        file.mkdirs();
                    }
                }
            }
        } catch (Exception e) {
        }
    }

//    /**
//     * 从sd卡获取mp3资源
//     *
//     * @return
//     */
//    public static void getAudioPathFromSD(Handler handler) {
//
//        // 音频列表
//        List<String> picList = new ArrayList<>();
//
//        // 得到sd卡内路径
//        String imagePath =
//                Environment.getExternalStorageDirectory().toString()
//                        + ConstantUtils.PATH_LOCAL_RECORDS;
//        /**
//         *  得到该路径文件夹下所有的文件
//         */
//        File mfile = new File(imagePath);
//        if (null != mfile && mfile.isDirectory()) {
//            File[] files = mfile.listFiles();
//            // 将所有的文件存入ArrayList中,并过滤所有图片格式的文件
//            for (int i = 0; i < files.length; i++) {
//                File file = files[i];
//                if (checkIsAudioFile(file.getPath())) {
//                    picList.add(file.getPath());
//                }
//
//            }
//
//        }
//        if (null != handler) {
//            Message msg = handler.obtainMessage();
//            msg.what = ConstantUtils.HANDLER_WHAT_UI_ON_AUDIO_FINISH_LISTENNER;
//            msg.obj = picList;
//            handler.sendMessage(msg);
//        }
//    }

    /**
     * 检查扩展名，得到MP3格式的文件
     *
     * @param fName
     * @return
     */
    private static boolean checkIsAudioFile(String fName) {
        boolean isImageFile = false;
        // 获取扩展名
        String FileEnd = fName.substring(fName.lastIndexOf(".") + 1,
                fName.length()).toLowerCase();
        if (FileEnd.equals("mp3")) {
            isImageFile = true;
        } else {
            isImageFile = false;
        }
        return isImageFile;
    }


    /**
     * 创建文件到sd卡
     *
     * @return
     */
    public static File createImageFile(String sd_file_path, String file_name, String extra) {
        try {
            // ----创建存放文件的文件夹
            String imagePath = Environment.getExternalStorageDirectory().getAbsolutePath() + sd_file_path;
            createFloderImages(imagePath);
            // ----设置文件的名称
            imagePath = imagePath + "/" + file_name + extra;
            return new File(imagePath);
        } catch (Exception e) {
        }
        return null;
    }

//    /**
//     * 保存Bitmap到sd卡
//     *
//     * @param bitmapTemp
//     * @return
//     */
//    public static String saveBitmapInSd(Bitmap bitmapTemp) {
//        // 保存图片到sd卡
//        FileOutputStream fOut = null;
//        try {
//            CalendarUtils util_calendar = new CalendarUtils();
//            File imageFile = createImageFile(ConstantUtils.PATH_LOCAL_IMAGE_DOWNLOAD, util_calendar.getNow("yyyyMMddHHmmss"), ".png");
//            imageFile.createNewFile();
//            fOut = new FileOutputStream(imageFile);
//            bitmapTemp.compress(Bitmap.CompressFormat.PNG, 100, fOut);
//            return imageFile.getAbsolutePath();
//        } catch (Exception e) {
//        } finally {
//            try {
//                fOut.flush();
//                fOut.close();
//            } catch (Exception e) {
//            }
//        }
//        return "";
//    }

    /**
     * 删除某路径下的所有文件及文件夹
     *
     * @param file
     */
    public static void deleteFileInSD(File file) {
        try {
            if (file.isFile()) {
                file.delete();
                return;
            }
            if (file.isDirectory()) {
                File[] childFiles = file.listFiles();
                if (childFiles == null || childFiles.length == 0) {
                    return;
                }
                for (int i = 0; i < childFiles.length; i++) {
                    deleteFileInSD(childFiles[i]);
                }
            }
        } catch (Exception e) {
        }
    }


}
